package com.haiyi.activiti.engine.framework.activiti.manager;

import com.haiyi.activiti.engine.model.entity.RuleEngine;
import com.haiyi.activiti.engine.framework.ruleengine.Stream;
import com.haiyi.activiti.engine.query.RuleEngineQuery;

import java.util.Map;

/**
 * <p> 规则引擎管理 </p>
 *
 * <pre> Created: 2018/12/6 15:01 </pre>
 *
 * @author hlu
 * @version 1.0
 * @since JDK 1.7
 */
public interface RuleEngineManager {

    /**
     * 创建一个规则引擎查询条件
     * @return
     */
    RuleEngineQuery createRuleEngineQuery();

    /**
     * 创建一个规则引擎
     * @param ruleEngine
     */
    void createRuleEngine(RuleEngine ruleEngine);

    /**
     * 修改一个已有规则引擎
     * @param ruleEngine
     */
    void updateRuleEngine(RuleEngine ruleEngine);

    /**
     * 删除一个已有规则引擎
     * @param iid
     */
    void deleteRuleEngine(String iid);

    /**
     * 执行一个规则引擎
     * @param ruleEngine 要执行的规则引擎
     * @param params 执行参数
     * @return
     */
    Stream executeRule(RuleEngine ruleEngine, Map<String,Object> params);
}
